Polling is a method wherein a central controller asks users, i.e., polls the users, to see if the users have information to transmit, and then allows the users to transmit according to a predetermined scheme. Examples of these techniques include: roll call polling--where all users are polled in a determined order; hub polling--usually applied to a bus structure wherein the node that is the furthest distance from central controller is polled, and if it has no information to transmit, passes the poll to a neighbor and repeats this procedure until a node has information to send. Since the controller receives an id, the node that is to receive the next polling packet is known, and the process is repeated. The concept of polling is shown in FIG. 5, numeral 500.
The central controller polls all users, 502, regardless of whether the users have information to transmit. In the example shown in FIG. 5, user i 504, has information to transmit 506. Once the packet is received, then the central controller polls the next user based on one of the above techniques. In this example, user j 508 is polled, and sends a negative ACK (NAK), 509, back to the central controller stating that user j has no information to send. The central controller then polls the next user in a predetermined list, user k 510 and again receives a NAK 511. When the controller polls user l 512, information is transmitted on the upstream channel. It is clear that the above procedure may cause wasted bandwidth when users have no information to send.
To reduce the amount of wasted bandwidth on the channel, the concept of pipeline polling was developed, FIG. 6, numeral 600. The main difference between pipeline polling and regular polling is that some state information is supplied by the users to the central controller, and this state information determines how long the user will have the channel and sends out the next polling packet such that the time between users accessing the channel is minimized. Thus, while user i 604 is transmitting 606 to the central controller, the central controller knows a priori that user l 612 no longer requires the upstream channel and schedules user j 608 to access the channel by sending the polling control packet to user j 605 while user l 612 is tranmsitting. Using this technique, the channel is better utilized.
However, some bandwidth is still wasted due to users that do not have information to send and are required to send a negative acknowledgment (NAK) packet, thus still wasting bandwidth, 609, 611. If the system has many users, and the number of users that transfer information is small, then the delay will be large since all users are polled, and the channel will be dominated by NAK's.
Thus, there is a need for a method, device and router for reducing the amount of wasted bandwidth due to inactive users, defined as users with no information in the queue.